package com.shy.base.util;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

/**
 * request转换类
 * 
 * @author H2013788
 * @date 2016-9-1
 */
public class HttpServletRequestResover {
    /** request */
    HttpServletRequest request;

    /**
     * 构造方法
     * 
     * @param request
     *            请求对象
     */
    public HttpServletRequestResover(HttpServletRequest request) {
        super();
        this.request = request;
    }

    /**
     * @param name
     *            参数名
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public String getString(String name) {
        return request.getParameter(name);
    }

    /**
     * 
     * @param name
     *            参数名
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public Date getDate(String name)  throws Exception{
        return getDate(name, null);
    }

    /**
     * 
     * @param name
     *            参数名
     * @param defaultValue
     *            如果参数不存在所取的默认值
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public Date getDate(String name, Date defaultValue)  throws Exception{
        String str = request.getParameter(name);
        if (str != null && str.length() != 0) {
            return DateUtils.strConvert2Date("yyyy-MM-dd hh:mm:ss", str);
        }
        return defaultValue;
    }

    /**
     * 
     * @param name
     *            参数名
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public Long getLong(String name) {
        return getLong(name, null);
    }

    /**
     * 
     * @param name
     *            参数名
     * @param defaultValue
     *            如果参数不存在所取的默认值
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public Long getLong(String name, Long defaultValue) {
        String str = request.getParameter(name);
        if (str != null && str.length() != 0) {
            return Long.valueOf(str);
        }
        return defaultValue;
    }

    /**
     * 
     * @param name
     *            参数名
     * @param defaultValue
     *            如果参数不存在所取的默认值
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public long getLong(String name, long defaultValue) {
        String str = request.getParameter(name);
        if (str != null && str.length() != 0) {
            return Long.valueOf(str);
        }
        return defaultValue;
    }

    /**
     * 
     * @param name
     *            参数名
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public Integer getInt(String name) {
        return getInt(name, null);
    }

    /**
     * 
     * @param name
     *            参数名
     * @param defaultValue
     *            如果参数不存在所取的默认值
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public Integer getInt(String name, Integer defaultValue) {
        String str = request.getParameter(name);
        if (str != null && str.length() != 0) {
            return Integer.valueOf(str);
        }
        return defaultValue;
    }

    /**
     * 
     * @param name
     *            参数名
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public Double getDouble(String name) {
        return getDouble(name, null);
    }

    /**
     * 
     * @param name
     *            参数名
     * @param defaultValue
     *            如果参数不存在所取的默认值
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public Double getDouble(String name, Double defaultValue) {
        String str = request.getParameter(name);
        if (str != null && str.length() != 0) {
            return Double.valueOf(str);
        }
        return defaultValue;
    }

    /**
     * 获取当前request
     * 
     * @return
     * @author H2013788
     * @date 2018/2/6
     */
    public HttpServletRequest getRequest() {
        return request;
    }

}
